MC 您所在的位置:网站首页 codesys 施耐德 MC

MC

#MC| 来源: 网络整理| 查看: 265

功能描述

此库通过 CommonMotionTypes 库支持以下凸轮类型(运动定律)(有关详细信息,请参阅 CommonMotionTypes 库指南中的 ST_MultiCam 和 ET_CamType):

直线

简单正弦

五次一般多项式

五次标准多项式

ST_MultiCam 是 PacDrive3 使用的相同数据结构,因此可以用相同凸轮编辑器来创建。

 警告 意外的设备操作 检查凸轮启动时从轴的物理位置,并确认其与凸轮定义中的位置匹配。 未按说明操作可能导致人身伤亡或设备损坏等严重后果。 斜坡逼近机制

功能块提供斜坡逼近机制。斜坡逼近机制通过将输入 SlaveStartMode 设置为 RampIn 来激活并通过输入 VelocityOffsetRampIn、AccelerationOffsetRampIn、DecelerationOffsetRampIn 和 JerkOffsetRampIn 来配置。模数轴的斜坡逼近方向可以通过输入 RampInDirection 来设置。

插补凸轮

此功能块让您能够实现插补凸轮。有两种类型的插补凸轮可用:

线性插值

利用 Poly5 凸轮定律插补

从凸轮点数组插补凸轮。如要使用插补凸轮,请在应用程序中创建一个最少包含 3 个点且最多包含 10000 个点的数组。

线性插值:

数组描述凸轮的函数 (Y = f(X))。为数组指定的值是凸轮点的 Y 坐标。这些 Y 值沿 X 轴等距分布(其意味着,由此功能块确定 X 轴)。数组值以升序从左向右地指定到各点,从作为最低 X 值的最低数组索引开始。

利用 Poly5 凸轮定律插补:

数组描述凸轮在主站位置 (X)、从站位置 (Y)、凸轮点的速度(V,对应于斜率)以及凸轮点的加速度(A,对应于曲率)方面的函数。为 X 使用严格单调递增的值。

如要启动插补凸轮,请将输入 InterpolationPoints 设置为存储凸轮点的数组的地址。如果在输入 Execute 的上升沿上,输入 InterpolationPoints 不等于零,则功能块 MC_CamIn 按照通过输入 InterpolationParameter 设置的参数启动插补凸轮。通过输入 CamTableID 通过的数据被忽略。如果在输入 Execute 的上升沿上,输入 InterpolationPoints 等于零,则功能块启动凸轮并忽略通过输入 InterpolationParameter 设置提供的数据。

数据类型 MC_Interpolation_Parameter 用于设置插补凸轮的参数。它是 MotionInterface 库的结构 ST_Interpolation_Parameter 的别名。参数设定:

udiNumCamPoints

填充有凸轮点的数组条目的数量。如果数组大于已填充的凸轮点的数量,则忽略多余的数组元素。

lrMinMasterPosition 和 lrMaxMasterPosition

对于用于线性插补的数组,主站的位置范围通过 lrMinMasterPosition 和 lrMaxMasterPosition 设置。最低数组索引处的凸轮点对应于 lrMinMasterPosition。通过 udiNumCamPoints 设置的数组索引处的凸轮点对应于 lrMaxMasterPosition。其他凸轮点均匀分布在这些主站位置之间。执行 Poly5 插补时,忽略 lrMinMasterPosition 和 lrMaxMasterPosition。

etInterpolationMode

此枚举指定插补类型。

YArrayLinear(凸轮轨迹是位于各凸轮点之间的直线)

XYVAArrayPoly5(5 次多项式)

 警告 意外的设备操作 如果使用插补凸轮,请确认为输入 InterpolationPoints 指定的插补点数与为用于输入 InterpolationParameter 的结构 ST_InterpolationParameter 的 udiNumCamPoints 指定的值相同。 如果使用利用 Poly5 凸轮定律插补的凸轮,请确认结构 ST_InterpolationPointXYVA 的 X 值严格单调递增。 缓冲凸轮或者正在执行凸轮时,请确认凸轮点数组中的数据未被修改。 正在执行凸轮时,请确认未触发在线修改。 未按说明操作可能导致人身伤亡或设备损坏等严重后果。

有关通过 ST_InterpolationParameter 设置插补凸轮参数的详细信息,请参阅 MotionInterface 库指南。

在指定的主轴位置处启动凸轮

输入 MasterStartPosition 用于在指定的主轴位置处启动凸轮。除非通过 MC_BufferMode 将缓冲模式设置为 StartAtMasterPosition,否则便会忽略此输入。

如果启动缓冲模式为 StartAtMasterPosition 的 MC_CamIn,则从轴上需要有别的凸轮在执行运动。如若不然,MC_CamIn 便会检测到错误,但这不会干扰从轴的运动。通过输入 MasterStartPosition 提供的值必须在当前正运行的凸轮所定义的 MasterAsSeenBySlave 的范围之内。如若不然,MC_CamIn 便会检测到错误,但这不会干扰从轴的运动。

如果在启动缓冲模式为 StartAtMasterPosition 的 MC_CamIn(输入 Execute 设置为 TRUE)时,在当前正运行的凸轮之后已缓冲别的作业,那么被缓冲的作业会被设置为 CommandAborted,就如同缓冲模式为 StartAtMasterPosition 的此功能块以 Aborting 缓冲模式中断了正运行的凸轮。

与输出 EndOfProfile 相结合的行为:

如果在到达缓冲模式为 StartAtMasterPosition 的功能块的 MasterStartPosition 位置之前,正运行的凸轮完成了其最后一段行程(输出 EndOfProfile 设置为 TRUE),则正运行的凸轮的行为就如同未启动其他命令时那样。

如果在正运行的凸轮完成其最后一段行程之前,已到达缓冲模式为 StartAtMasterPosition 的功能块的 MasterStartPosition 位置,则正运行的凸轮的行为就如同因所缓冲的功能块而中止时那样(CommandAborted 设置为 TRUE,EndOfProfile 保持为 FALSE)。

周期凸轮正运行期间的 StartAtMasterPosition 行为

如果在正运行周期凸轮期间触发了缓冲模式为 StartAtMasterPosition 的功能块 MC_CamIn,并且如果在到达 MasterStartPosition 位置之前,正运行的凸轮到达其 EndOfProfile,则正运行的凸轮会“转向”,将其输出 EndOfProfile 设置为 TRUE 并在一个循环内保持该设置。

在周期凸轮运行的下一个循环中,在正运行的周期凸轮到达其 EndOfProfile 之前,已到达 MasterStartPosition 位置。这时,就会启动缓冲模式为 StartAtMasterPosition 的新凸轮。

这种行为如下图所示:

图例:

MSP = MasterStartPosition 位置

SAMP = 触发缓冲模式为 StartAtMasterPosition 的 MC_CamIn

EOP = EndOfProfile 位置

一次性凸轮正运行期间的 StartAtMasterPosition 行为:

如果在正运行一次性凸轮期间触发了缓冲模式为 StartAtMasterPosition 的功能块 MC_CamIn,并且如果在到达 MasterStartPosition 位置之前,正运行的凸轮到达其 EndOfProfile,则正运行的凸轮会将其输出 EndOfProfile 设置为 TRUE 并保持在该位置处,就如同未触发其他凸轮那样。

在主轴“转向”且到达 MasterStartPosition 位置后,会启动缓冲模式为 StartAtMasterPosition 的功能块 MC_CamIn。CommandAborted 设置为 TRUE,EndOfProfile 保持为 FALSE。

这种行为如下图所示:

图例:

MSP = MasterStartPosition 位置

SAMP = 触发缓冲模式为 StartAtMasterPosition 的 MC_CamIn

EOP = EndOfProfile 位置

MTA = 主轴“转向”

图形表示形式 输入

输入

数据类型

描述

Master

Axis_Ref

对将执行功能块的轴的引用。

Slave

Axis_Ref

对将执行功能块的轴的引用。

Execute

BOOL

值范围:FALSE,TRUE。

缺省值: FALSE。

输入 Execute 的上升沿可启动功能块。功能块持续执行,且输出 Busy 设置为 TRUE。

此功能块可在执行期间重启。目标值将被上升沿出现时该点的新值所覆盖。

CamTableID

MC_CAM_ID

要使用的凸轮表的标识符。

数据类型 MC_CAM_ID 是 CommonMotionTypes 库的 ST_MultiCam 的别名。有关详细信息,请参阅 CommonMotionTypes 库指南。

BufferMode

MC_Buffer_Mode

缺省值:Aborting

缓冲模式。

可能的值:

值 Aborting

值 Buffered

有关值描述,请参阅 MC_Buffer_Mode。

Periodic

BOOL

值范围:FALSE,TRUE。

缺省值: FALSE。

TRUE 启动 MC_CamIn 的周期模式。此模式连续重复执行凸轮。

FALSE 在单次模式中启动凸轮。如果最近边缘(第一个或最后一个凸轮点)的从轴位置在定义的范围之外,则冻结此从轴位置,即,如果凸轮在定义的范围之外,则从轴静止(但仍处于 SynchronizedMotion 状态)。

注: 无论是在周期模式还是在单次模式中启动凸轮,它都会指示 EndOfProfile,并且在达到 EndOfProfile 时(即便凸轮被定义为周期模式),缓存的运动作业(如果存在这样的作业)激活。

MasterStartMode

MC_Master_Start_Mode

缺省值:Absolute

可能的值:

值 Absolute

值 Relative

有关值描述,请参阅 MC_Master_Start_Mode。

SlaveStartMode

MC_Slave_Start_Mode

缺省值:Relative

可能的值:

值 Relative

值 RampIn

值 Absolute

有关值描述,请参阅 MC_Slave Start_Mode。

RampInDirection

MC_Direction

在从轴为模数轴的情况下,接合的斜坡逼近方向。此方向是斜坡逼近机制自从轴的位置(而不是凸轮轨迹的 Y 周期)到绝对目标的方向(其中 MC_CamIn 被视为 InSync)。

如果从轴不是模数轴,则此输入的值没有任何效用。

缺省值:PositiveDirection

可能的值:

值 PositiveDirection:

值 NegativeDirection

值 ShortestWay

有关值描述,请参阅 MC_Direction。

VelocityOffsetRampIn

LREAL

值范围:-2147483648...2147483647

缺省值:0

以用户自定义单位表示的斜坡逼近机制的速度偏移。

AccelerationOffsetRampIn

LREAL

值范围:任意正 LREAL 值

缺省值:0

以用户自定义单位表示的斜坡逼近机制的加速度偏移。

DecelerationOffsetRampIn

LREAL

值范围:任意正 LREAL 值

缺省值:0

以用户自定义单位表示的斜坡逼近机制的减速度偏移。

JerkOffsetRampIn

LREAL

值范围:任意正 LREAL 值和零

正值:变化率限值(单位/s3)(加速度修改的最大变化率)。

零:变化率限值已禁用。加速度瞬间从零跳至最大加速度(无限变化率)。

缺省值:0

InterpolationPoints

POINTER TO BYTE

长度为 3 至 10,000 的数组的内存地址。数组类型取决于输入 InterpolationParameter 的 etInterpolationMode 的值,要么是 ARRAY OF LREAL,要么是 ARRAY OF ST_InterpolationPointXYVA。

值范围:0 以及 3...10000

缺省值:0

注: 值必须与输入 InterpolationParameter 所使用的 ST_InterpolationParameter 的 udiNumCamPoints 值相同。有关详细信息,请参阅 MotionInterface 库指南。

InterpolationParameter

MC_Interpolation_Parameter

使用 MC_InterpolationParameter 设置插补凸轮的参数。有关详细信息,请参阅MC_InterpolationParameter。

MasterStartPosition

LREAL

值范围:-2147483648...2147483647

缺省值:0

在激活新凸轮时前一个凸轮的主轴位置(如从轴所见)。

除非为 MC_BufferMode 使用 StartAtMasterPosition,否则便会忽略此输入。

输出

输出

数据类型

描述

InSync

BOOL

值范围:FALSE,TRUE。

缺省值: FALSE。

FALSE:如果轴已接合且凸轮未被处理。

TRUE:如果轴已接合且凸轮已被处理。

Busy

BOOL

值范围:FALSE,TRUE。

缺省值: FALSE。

FALSE:功能块不处于正被执行状态。

TRUE:功能块正在执行中。

Active

BOOL

值范围:FALSE,TRUE。

缺省值: FALSE。

FALSE:功能块不控制轴的运动。

TRUE:功能块控制轴的运动。

CommandAborted

BOOL

值范围:FALSE,TRUE。

缺省值: FALSE。

FALSE:执行尚未中止。

TRUE:执行已被另一个功能块所中止。

Error

BOOL

值范围:FALSE,TRUE。

缺省值: FALSE。

FALSE:功能块正在执行,且执行期间未检测到错误。

TRUE:已在执行功能块时检出错误。

ErrorID

ET_Result

此枚举提供诊断信息。

EndOfProfile

BOOL

值范围:FALSE,TRUE。

缺省值: FALSE。

FALSE:未完成凸轮的最后一段。

TRUE:在已完成凸轮的最后一段之后。

RampInDuration

TIME

指示在斜坡逼近操作完成并且将输出 InSync 设置为 TRUE 之前的剩余时间。

注:

与 PLCopen Motion Control Part 1, Version 2.0 规范不同,此库不提供单独的功能块 MC_CamTableSelect。凸轮表被指定作为输入(不需要 MC_CamIn)。

此库不提供单独的功能块 MC_CamOut。可以使用另一功能块来替换正在运行的功能块。

此功能块为绝对运动和相对运动都提供了较高的灵活性。比如,主站(或从站)轴的模数与凸轮在 X(或 Y)方向上的应用周期之间不一定要有关系。因此,可以通过稍微调整凸轮轨迹在 X 或 Y 方向上的应用周期,来动态地应用偏移校正。轴模数无法执行此操作,在轴执行功能块时,无法修改轴模数。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有